package com.unitd.modules.sys.service;

import com.unitd.frame.comm.tree.Ztree;
import com.unitd.frame.mybatis.core.service.IBaseService;
import com.unitd.modules.sys.entity.SysOrg;

import java.util.List;
import java.util.Map;

/**
 * @desc 机构信息管理业务逻辑控制接口类
 * @filename SysOrgService.java
 * @copyright www.unitd.com
 * @author Hudan
 * @version 1.0
 * @date 2017-04-08
 */
public interface ISysOrgService extends IBaseService<SysOrg, String> {

	/**
	 * @desc 根据主键ID获取对应的详情信息
	 * @param id 主键ID
	 * @return
	 */
	SysOrg findBy(String id);

	/**
	 * @desc 获取所有有效机构, 并按照层级关系进行重新组合
	 * @return
	 */
	List<Ztree> getSysOrgTrees();

	/**
	 * @desc 根据选择的机构父ID获取该父机构下的最大sort值并+1
	 * @param parentNo 父机构No
	 * @return
	 */
	Integer getMaxSortByPNo(String parentNo);

	/**
	 * @desc 处理数据保存/更新
	 * @param param 前端传送的需要处理的数据
	 * @return
	 */
	Integer doEdit(Map<String, Object> param);

	/**
	 * @desc 根据ID串删除机构
	 * @param ids 需要删除的详情信息ID串,多个ID之间用,分割
	 * @return
	 */
	Integer doDelete(String ids);
}